﻿#pragma once
#include <string>
#include <map>

struct ListNode
{
	int       m_nKey;
	ListNode* m_pNext;
};

class BasisTest
{
public:
	BasisTest(void);
	~BasisTest(void);

	//字符串最后一个单词的长度
	void theLastWord();


	/*****************************************************
	名称:图片整理
	描述:Lily上课时使用字母数字图片教小朋友们学习英语单词，每
	次都需要把这些图片按照大小（ASCII码值从小到大）排列收
	好。请大家给Lily帮忙，通过C语言解决。
	知识点:字符串 
	题目来源:内部整理 
	练习阶段:初级 
	运行时间限制:无限制
	内存限制:无限制
	输入:Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入
	字母或数字个数不超过1024。
	输出:Lily的所有图片按照从小到大的顺序输出
	样例输入:Ihave1nose2hands10fingers
	样例输出:0112Iaadeeefghhinnnorsssv
	*****************************************************/
	int pictureTrim();


	/***************************************************
	数字颠倒
	***************************************************/
	int shuzidiandao();


	/*
	计算字符个数
	描述:写出一个程序，接受一个有字母和数字以及空格组成的字
	符串，和一个字符，然后输出输入字符串中含有该字符的
	个数。不区分大小写。
	知识点:	 字符串,函数,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:输入一个有字母和数字以及空格组成的字符串，和一个字符。
	输出:输出输入字符串中含有该字符的个数。
	样例输入:
	ABCDEF
	A
	样例输出:	
	1
	*/
	int zifugeshu();


	/*
	描述: 	
	题目标题：
	判断短字符串中的所有字符是否在长字符串中全部出现
	详细描述：
	接口说明
	原型：
	boolIsAllCharExist(char* pShortString,char* pLongString);
	输入参数：
	char* pShortString：短字符串
	char* pLongString：长字符串





	知识点:	 字符串,循环,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入两个字符串。第一个为短字符，第二个为长字符。

	输出:	 
	返回值：
	true  - 表示短字符串中所有字符均在长字符串中出现
	false- 表示短字符串中有字符在长字符串中没有出现


	样例输入:	
	bc
	abc


	样例输出:	
	true


	*/
	bool IsAllCharExist(char* pShortString,char* pLongString);


	/*
	表示数字
	*/
	static std::string MarkNum(std::string pInStr);

	/*

	等差数列       	答题时间： 00 小时 00 分 06 秒
	描述: 	
	功能:等差数列 2，5，8，11，14。。。。
	输入:正整数N >0
	输出:求等差数列前N项和
	返回:转换成功返回 0 ,非法输入与异常返回-1


	知识点:	 函数 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个正整数。

	输出:	 
	输出一个相加后的整数。

	样例输入:	
	2


	样例输出:	
	7


	*/
	int dengchashulie();

	/*

	进制转换       	答题时间： 00 小时 00 分 05 秒
	描述: 	
	写出一个程序，接受一个十六进制的数值字符串，输出该数值的十进制字符串。

	知识点:	 字符串,循环,函数,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个十六进制的数值字符串。

	输出:	 
	输出该数值的十进制字符串。

	样例输入:	
	0xA

	样例输出:	
	10
	*/
	int jinzhizhuanhuan();

	/*
	描述: 	
	将一个字符串str的内容颠倒过来，并输出。str的长度不超过100个字符。 如：输入“I am a student”，输出“tneduts a ma I”。



	输入参数：
	inputString：输入的字符串


	返回值：
	输出转换好的逆序字符串



	知识点:	 字符串 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个字符串，可以有空格

	输出:	 
	输出逆序的字符串

	样例输入:	
	I am a student

	样例输出:	
	tneduts a ma I
	*/
	int zifuchuannixu(void);

	/*
	字符统计       	答题时间： 00 小时 00 分 06 秒
	描述: 	
	如果统计的个数相同，则按照ASII码由小到大排序输出 。如果有其他字符，则对这些字符不用进行统计。
	实现以下接口：
	输入一个字符串，对字符中的各个英文字符，数字，空格进行统计（可反复调用）
	按照统计个数由多到少输出统计结果，如果统计的个数相同，则按照ASII码由小到大排序输出
	清空目前的统计结果，重新统计
	调用者会保证：
	输入的字符串以‘\0’结尾。



	知识点:	 字符串,排序 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一串字符。

	输出:	 
	对字符中的
	各个英文字符（大小写分开统计），数字，空格进行统计，并按照统计个数由多到少输出,如果统计的个数相同，则按照ASII码由小到大排序输出 。如果有其他字符，则对这些字符不用进行统计。

	样例输入:	
	aadddccddc


	样例输出:	
	dca
	*/
	int zifuchuantongji(void);


	/*
	描述: 	
	编写一个函数，计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

	知识点:	 字符串,函数,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入N个字符，字符在ACSII码范围内(0~127)。

	输出:	 
	输出字符的个数。

	样例输入:	
	abc


	样例输出:	
	3
	*/
	int baohanbutongzifugeshu(void);

	/*
	求最小公倍数       	答题时间： 00 小时 01 分 39 秒
	描述: 	
	正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值，设计一个算法，求输入A和B的最小公倍数。
	知识点:	 循环,位运算 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入两个正整数A和B。
	输出:	 
	输出A和B的最小公倍数。
	样例输入:	
	5 
	7
	样例输出:	
	35
	*/
	int zuixiaogongbeishu(void);

	/*
	取近似值       	答题时间： 00 小时 00 分 06 秒
	描述: 	
	写出一个程序，接受一个浮点数值，输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整；小于5，则向下取整。

	知识点:	 函数 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个浮点数值

	输出:	 
	输出该数值的近似整数值

	样例输入:	
	5.5


	样例输出:	
	6
	*/
	int qujinsizhi(void);

	/*
	字符串反转       	答题时间： 00 小时 00 分 08 秒
	描述: 	
	写出一个程序，接受一个字符串，然后输出该字符串反转后的字符串。例如：

	知识点:	 数组,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入N个字符

	输出:	 
	输出该字符串反转后的字符串

	样例输入:	
	abcd


	样例输出:	
	dcba
	*/
	int zifuchuanfanzhuan(void);


	/*
	找出字符串中第一个只出现一次的字符       	答题时间： 00 小时 00 分 18 秒
	描述: 	
	找出字符串中第一个只出现一次的字符
	详细描述：
	接口说明
	原型：
	bool FindChar(char* pInputString, char* pChar);
	输入参数：
	char* pInputString：字符串
	输出参数（指针指向的内存区域保证有效）：
	char* pChar：第一个只出现一次的字符
	如果无此字符 请输出'.'
	知识点:	 字符串,循环 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一串字符
	输出:	 
	输出一个字符
	样例输入:	
	asdfasdfo
	样例输出:	
	o
	*/
	bool FindChar(char* pInputString, char* pChar);

	/*
	输入n个整数，输出其中最小的k个       	答题时间： 00 小时 03 分 44 秒
	描述: 	
	输入n个整数，输出其中最小的k个。
	详细描述：
	接口说明
	原型：
	bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);
	输入参数：
	unsignedint uiInputNum //输入整数个数
	int * pInputArray  //输入整数数组
	unsignedint uiK   //需输出uiK个整数
	输出参数（指针指向的内存区域保证有效）：
	int * pOutputArray //最小的uiK个整数
	返回值：
	false 异常失败
	true  输出成功

	知识点:	 循环,数组 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入说明 
	1 输入两个整数 
	2 输入一个整数数组

	输出:	 
	输出一个整数数组

	样例输入:	
	5 2
	1 3 5 7 2

	样例输出:	
	1 2

	*/
	bool GetMinK(unsigned int uiInputNum, int * pInputArray, unsigned int uiK, int * pOutputArray);

	/*
	明明的随机数       	答题时间： 00 小时 00 分 07 秒
	描述: 	
	明明想在学校中请一些同学一起做一项问卷调查，为了实验的客观性，他先用计算机生成了N个1到1000之间的随机整数（N≤100），对于其中重复的数字，只保留一个，把其余相同的数去掉，不同的数对应着不同的学生的学号。然后再把这些数从小到大排序，按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。


	Input Param 
	n               输入随机数的个数     
	inputArray      n个随机整数组成的数组 

	Return Value
	OutputArray    输出处理后的随机整数


	注：测试用例保证输入参数的正确性，答题者无需验证。




	知识点:	 数组 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入多行，先输入随机整数的个数，在输入相应个数的整数

	输出:	 
	返回多行，处理后的结果

	样例输入:	
	11
	10
	20
	40
	32
	67
	40
	20
	89
	300
	400
	15


	样例输出:	
	10
	15
	20
	32
	40
	67
	89
	300
	400


	*/
	int mingmingdesuijishu(void);


	/*
	学英语       	答题时间： 00 小时 00 分 13 秒
	描述: 	
	Jessi初学英语，为了快速读出一串数字，编写程序将数字转换成英文：
	如22：twenty two，123：one hundred and twenty three。

	说明：
	数字为正整数，长度不超过十位，不考虑小数，转化结果为英文小写；
	输出格式为twenty two；
	非法数据请返回“error”；
	关键字提示：and，billion，million，thousand，hundred。

	方法原型：public static String parse(long num) 

	知识点:	 语言基础,字符串,循环,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个long型整数

	输出:	 
	输出相应的英文写法

	样例输入:	
	2356

	样例输出:	
	two thousand three hundred and fifty six

	*/
	static std::map<int,std::string> mE;
	static std::map<int,std::string> mY;
	static void initMap();
	static std::string parse_3(int tmp,int flag);
	static std::string parse(long num);

	/*
	记票统计       	答题时间： 00 小时 00 分 07 秒
	描述: 	
	请实现接口：
	unsigned int  AddCandidate (char* pCandidateName);
	功能：设置候选人姓名
	输入： char* pCandidateName 候选人姓名
	输出：无
	返回：输入值非法返回0，已经添加过返回0 ，添加成功返回1

	Void Vote(char* pCandidateName);
	功能：投票
	输入： char* pCandidateName 候选人姓名
	输出：无
	返回：无

	unsigned int  GetVoteResult (char* pCandidateName);
	功能：获取候选人的票数。如果传入为空指针，返回无效的票数，同时说明本次投票活动结束，释放资源
	输入： char* pCandidateName 候选人姓名。当输入一个空指针时，返回无效的票数
	输出：无
	返回：该候选人获取的票数

	void Clear()
	// 功能：清除投票结果，释放所有资源
	// 输入：
	// 输出：无
	// 返回


	知识点:	 查找 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入候选人的人数，第二行输入候选人的名字，第三行输入投票人的人数，第四行输入投票。

	输出:	 
	每行输出候选人的名字和得票数量。

	样例输入:	
	4
	A B C D
	8
	A B C D E F G H

	样例输出:	
	A : 1
	B : 1
	C : 1
	D : 1
	Invalid : 4
	*/
	int jipiaotongji();

	/*
	合法IP       	答题时间： 00 小时 00 分 20 秒
	描述: 	
	现在IPV4下用一个32位无符号整数来表示，一般用点分方式来显示，点将IP地址分成4个部分，每个部分为8位，表示成一个无符号整数（因此不需要用正号出现），如10.137.17.1，是我们非常熟悉的IP地址，一个IP地址串中没有空格出现（因为要表示成一个32数字）。
	现在需要你用程序来判断IP是否合法。


	知识点:	 基于输入输出,语言基础,字符串,循环,数据结构,链表,队列,栈,算法,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个ip地址

	输出:	 
	返回判断的结果YES or NO


	样例输入:	
	10.138.15.1


	样例输出:	
	YES


	*/
	int ipshifouhefa(void);

	/*
	百钱买百鸡问题       	答题时间： 00 小时 00 分 08 秒
	描述: 	
	公元前五世纪，我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”：鸡翁一值钱五，鸡母一值钱三，鸡雏三值钱一。百钱买百鸡，问鸡翁、鸡母、鸡雏各几何？
	详细描述：
	接口说明
	原型：
	int GetResult(vector &list)
	输入参数：
	无
	输出参数（指针指向的内存区域保证有效）：
	list  鸡翁、鸡母、鸡雏组合的列表
	返回值：
	-1 失败     
	0 成功



	知识点:	 循环,查找 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入任何一个整数，即可运行程序。

	输出:	 


	样例输入:	
	1

	样例输出:	
	0 25 75
	4 18 78
	8 11 81
	12 4 84
	*/
	int baiqianmaibaiji(void);

	/*
	密码强度等级       	答题时间： 00 小时 31 分 26 秒
	描述: 	
	密码按如下规则进行计分，并根据不同的得分为密码进行安全等级划分。
	一、密码长度:
	5 分: 小于等于4 个字符
	10 分: 5 到7 字符
	25 分: 大于等于8 个字符
	二、字母:
	0 分: 没有字母
	10 分: 全都是小（大）写字母
	20 分: 大小写混合字母
	三、数字:
	0 分: 没有数字
	10 分: 1 个数字
	20 分: 大于1 个数字
	四、符号:
	0 分: 没有符号
	10 分: 1 个符号
	25 分: 大于1 个符号
	五、奖励:
	2 分: 字母和数字
	3 分: 字母、数字和符号
	5 分: 大小写字母、数字和符号
	最后的评分标准:
	>= 90: 非常安全
	>= 80: 安全（Secure）
	>= 70: 非常强
	>= 60: 强（Strong）
	>= 50: 一般（Average）
	>= 25: 弱（Weak）
	>= 0:  非常弱

	对应输出为：
	VERY_WEAK,
	WEAK,    
	AVERAGE,    
	STRONG,     
	VERY_STRONG,
	SECURE,     
	VERY_SECURE 


	请根据输入的密码字符串，进行安全评定。
	注：
	字母：a-z, A-Z
	数字：-9
	符号包含如下： (ASCII码表可以在UltraEdit的菜单view->ASCII Table查看)
	!"#$%&'()*+,-./     (ASCII码：x21~0x2F)
	:;<=>?@             (ASCII<=><=><=><=><=>码：x3A~0x40)
	[\]^_`              (ASCII码：x5B~0x60)
	{|}~                (ASCII码：x7B~0x7E)
	接口描述：

	Input Param 
	String pPasswordStr:    密码，以字符串方式存放。
	Return Value
	根据规则评定的安全等级。


	public static Safelevel GetPwdSecurityLevel(String pPasswordStr)
	{
	在这里实现功能
	return null;
	}




	知识点:	 枚举 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个string的密码

	输出:	 
	输出密码等级

	样例输入:	
	38$@NoNoNo

	样例输出:	
	VERY_SECURE
	*/
	int  mimaqiangdudengji(void);

	/*
	人民币转换       	答题时间： 00 小时 00 分 20 秒
	描述: 	
	考试题目和要点：
	1、中文大写金额数字前应标明“人民币”字样。中文大写金额数字应用壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿、元、角、分、零、整等字样填写。（30分） 
	2、中文大写金额数字到“元”为止的，在“元”之后，应写“整字，如￥ 532.00应写成“人民币伍佰叁拾贰元整”。在”角“和”分“后面不写”整字。（30分） 
	3、阿拉伯数字中间有“0”时，中文大写要写“零”字，阿拉伯数字中间连续有几个“0”时，中文大写金额中间只写一个“零”字，如￥6007.14，应写成“人民币陆仟零柒元壹角肆分“。（


	知识点:	 字符串 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个doulbe数

	输出:	 
	输出人民币格式
	注：
	下面乱码为：
	﻿人民币拾伍万壹仟壹佰贰拾壹元壹角伍分

	人民币拾伍万壹仟壹佰贰拾壹元壹角伍分 

	样例输入:	
	151121.15

	样例输出:	
	人民币拾伍万壹仟壹佰贰拾壹元壹角伍分 
	*/
	static std::map<int,std::string> mR;
	static std::map<int,std::string> mD;
	void initMap_rmb();
	std::string parse(int tmp , int flag);
	int renmibizhuanhuan(void);

	/*
	记负均正       	答题时间： 00 小时 00 分 07 秒
	描述: 	
	首先输入要输入的整数个数n，然后输入n个整数。输出为n个整数中负数的个数，和所有正整数的平均值。

	知识点:	 函数,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	首先输入一个正整数n，
	然后输入n个整数。

	输出:	 
	输出负数的个数，和所有正整数的平均值。
	注：输出  当平均值为整数直接输出，如果不为整数保留一小数。

	样例输入:	
	5
	1
	2
	3
	4
	5

	样例输出:	
	0 3

	*/
	int jifujunzheng(void);

	/*
	放苹果       	答题时间： 00 小时 00 分 12 秒
	描述: 	
	题目描述
	把M个同样的苹果放在N个同样的盘子里，允许有的盘子空着不放，问共有多少种不同的分法？（用K表示）5，1，1和1，5，1 是同一种分法。

	输入
	每个用例包含二个整数M和N。0<=m<=10，1<=n<=10。<=n<=10<=m<=10

	样例输入
	7 3

	样例输出
	8


	* 计算放苹果方法数目

	* 输入值非法时返回-1
	* 1 <= m,n <= 10<><= m,n <= 10<>
	* @param m 苹果数目
	* @param n 盘子数目数
	* @return 放置方法总数
	* 
	*
	public static int count(int m, int n)


	知识点:	 循环 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入两个int整数

	输出:	 
	输出结果，int型
	解题分析：
	设f(m,n) 为m个苹果，n个盘子的放法数目，则先对n作讨论，
	当n>m：必定有n-m个盘子永远空着，去掉它们对摆放苹果方法数目不产生影响。即if(n>m) f(m,n) = f(m,m)　　
	当n<=m：不同的放法可以分成两类：
	1、有至少一个盘子空着，即相当于f(m,n) = f(m,n-1);  
	2、所有盘子都有苹果，相当于可以从每个盘子中拿掉一个苹果，不影响不同放法的数目，即f(m,n) = f(m-n,n).
	而总的放苹果的放法数目等于两者的和，即 f(m,n) =f(m,n-1)+f(m-n,n) 
	递归出口条件说明：
	当n=1时，所有苹果都必须放在一个盘子里，所以返回１；
	当没有苹果可放时，定义为１种放法；
	递归的两条路，第一条n会逐渐减少，终会到达出口n==1; 
	第二条m会逐渐减少，因为n>m时，我们会return f(m,m)　所以终会到达出口m==0．
	*/
	int count(int m, int n);
	int fangpingguo(void);

	/*
	输入一行字符，分别统计出包含英文字母、空格、数字和其它字符的个数       	答题时间： 00 小时 00 分 15 秒
	描述: 	
	输入一行字符，分别统计出包含英文字母、空格、数字和其它字符的个数。


	* 统计出英文字母字符的个数。
	* 
	* @param str 需要输入的字符串
	* @return 英文字母的个数

	public static int getEnglishCharCount(String str)
	{
	return 0;
	}


	* 统计出空格字符的个数。
	* 
	* @param str 需要输入的字符串
	* @return 空格的个数
	*
	public static int getBlankCharCount(String str)
	{
	return 0;
	}

	/**
	* 统计出数字字符的个数。
	* 
	* @param str 需要输入的字符串
	* @return 英文字母的个数
	*
	public static int getNumberCharCount(String str)
	{
	return 0;
	}



	/**
	* 统计出其它字符的个数。
	* 
	* @param str 需要输入的字符串
	* @return 英文字母的个数
	*
	public static int getOtherCharCount(String str)
	{
	return 0;
	}

	知识点:	 字符串 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一行字符串，可以有空格

	输出:	 
	统计其中英文字符，空格字符，数字字符，其他字符的个数

	样例输入:	
	1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][
	*/
	int tongjiletter(void);


	/*
	提取不重复的整数       	答题时间： 00 小时 00 分 10 秒
	描述: 	
	输入一个int型整数，按照从右向左的阅读顺序，返回一个不含重复数字的新的整数。

	知识点:	 数组 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个int型整数

	输出:	 
	按照从右向左的阅读顺序，返回一个不含重复数字的新的整数
	如果返的整数以0开头，去掉0；
	如 intput：1010   output：1

	样例输入:	
	9876673


	样例输出:	
	37689

	*/
	int tiqubuchongfuzhengshu(void);

	int forgetwhat(void);

	/*
	iNOC产品部-杨辉三角的变形       	答题时间： 00 小时 21 分 31 秒
	描述: 	
	1
	1  1  1
	1  2  3  2  1
	1  3  6  7  6  3  1
	1  4  10 16 19  16 10  4  1
	以上三角形的数阵，第一行只有一个数1，以下每行的每个数，是恰好是它上面的数，左上角数到右上角的数，3个数之和（如果不存在某个数，认为该数就是0）。
	求第n行第一个偶数出现的位置。如果没有偶数，则输出-1。例如输入3,则输出2，输入4则输出3。

	输入n(n <= 1000000000)<> 

	public static  int run(int x)
	{
	return -1;
	}

	知识点:	 字符串 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入一个int整数

	输出:	 
	输出返回的int值

	样例输入:	
	4

	样例输出:	
	3
	*/
	int yanghuisanjiaobianxing(int x);

	/*
	求解立方根       	答题时间： 27 小时 35 分 11 秒
	描述: 	
	•计算一个数字的立方根，不使用库函数
	详细描述：
	•接口说明
	原型：
	public static double getCubeRoot(double input)
	输入:double 待求解参数
	返回值:double  输入参数的立方根

	知识点:	 循环 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	待求解参数 double类型

	输出:	 
	输入参数的立方根 也是double类型

	样例输入:	
	216

	样例输出:	
	6.0
	*/
	double getCubeRoot(double input);

	/*
	多线程
	unsigned int __stdcall ThreadFun1(void* pM)
	{
	return 0;
	}
	*/

	/*
	输出单向链表中倒数第k个结点       	答题时间： 00 小时 04 分 24 秒
	描述: 	
	输入一个单向链表，输出该链表中倒数第k个结点，链表的倒数第0个结点为链表的尾指针。
	链表结点定义如下：
	struct ListNode
	{
	int       m_nKey;
	ListNode* m_pNext;
	};
	详细描述：
	接口说明
	原型：
	ListNode* FindKthToTail(ListNode* pListHead, unsignedint k);
	输入参数：
	ListNode* pListHead  单向链表
	unsigned int k  倒数第k个结点
	输出参数（指针指向的内存区域保证有效）：
	无
	返回值：
	正常返回倒数第k个结点指针，异常返回空指针

	知识点:	 链表,查找,指针 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	输入说明
	1 输入链表结点个数
	2 输入链表的值
	3 输入k的值

	输出:	 
	输出一个整数

	样例输入:	
	8
	1 2 3 4 5 6 7 8
	4

	样例输出:	
	4
	*/

	ListNode* FindKthToTail(ListNode* pListHead, unsigned int k);

	/*
	自守数       	答题时间： 00 小时 00 分 24 秒
	描述: 	
	自守数是指一个数的平方的尾数等于该数自身的自然数。例如：252 = 625，762 = 5776，93762 = 87909376。请求出n以内的自守数的个数

	接口说明

	/*
	功能: 求出n以内的自守数的个数

	输入参数：
	int n
	返回值：
	n以内自守数的数量。

	public static int CalcAutomorphicNumbers( int n)
	{
	return 0;
	}

	知识点:	 查找 
	题目来源:	 内部整理 
	练习阶段:	 初级 
	运行时间限制:	10Sec
	内存限制:	128MByte
	输入:	 
	int型整数

	输出:	 
	n以内自守数的数量。

	样例输入:	
	2000

	样例输出:	
	8

	*/
	int CalcAutomorphicNumbers( int n);


};

